package com.suxin.plugin.operator;

import com.suxin.plugin.intergration.manager.PluginWrapper;

import java.util.List;

/**
 * @author Tang
 * @classname PluginOperator
 * @description [ 操作插件的接口 ]
 * @date 2022/6/26 18:32
 */
public interface PluginOperator {

    /**
     * 初始化插件
     * @return
     */
    boolean initPlugins();

    /**
     * start
     * @param pluginId
     * @return
     * @throws Exception
     */
    boolean start(String pluginId) throws Exception;

    /**
     * getPluginInfos
     * @return
     */
    List<PluginInfo> getPluginInfo();

    /**
     * getPluginInfo
     * @return
     */
    PluginInfo getPluginInfo(String pluginId);

    /**
     * getPluginWrapper
     * @return
     */
    List<PluginWrapper> getPluginWrapper();

    /**
     * getPluginWrapper
     * @param pluginId
     * @return
     */
    PluginWrapper getPluginWrapper(String pluginId);

}
